package com.ftg.learn.chapter07;

/**
 * 字符串常用方法
 *
 * @author lijiaxin
 * @version 1.0
 * @date 2023/7/17 13:28
 */

public class String02 {

    public static void test1(){
        String s="Welcome to java World!";
        String s1="   sun java   ";
//        判断字符串是否以Welcome字符串开头
        System.out.println(s.startsWith("Welcome"));
//        判断字符串是否以World字符串开头
        System.out.println(s.endsWith("World"));
        String sL=s.toLowerCase();
        String sU=s.toUpperCase();
        //welcome to java world!
        System.out.println(sL);
        //WELCOME TO JAVA WORLD!
        System.out.println(sU);
        String subs=s.substring(11);
        //JAVA World!
        System.out.println(subs);
        String sp=s1.trim();
        //sun java
        System.out.println(sp);
    }

    public static void test2(){
        int j=1234567;
//        public static String valueOf(…)可以将基本类型数据转换为字符串
        String sNum =String.valueOf(j);
        System.out.println("j是"+sNum.length()+"位数。");
        String s="Mary,F,1976";
//        public String[] split(String regex)可以将一个字
//        符串按照指定的分隔符分隔，返回分隔后的字符串数组
        String[] sPlit=s.split(",");
        for (int i = 0; i < sPlit.length; i++) {
            System.out.println(sPlit[i]);
        }
    }


    public static void main(String[] args) {

        test1();
        test2();

        String s1="abc";
        String s2="abc";

        String s3=new String("abc");
        String s4=new String("abc");

        String s5="a"+"b"+"c";

        //jdk 1.8开始  new StringBuider("ab").append(s)
        String s="c";
        String s6="ab"+s;

        String s7=s6.intern();
        String s8=s6.intern();

        int[] as={1,2,3};
        int[] as1={1,2,3};
        //基本表示判断值是否相同，引用是否为同一段地址
        System.out.println(as==as1);//false    数组一定会开辟空间
        //false   任何Java类都有equals方法  全是object
        System.out.println(as.equals(as1));

        //true 表示s1与s2地址相同
        System.out.println(s1==s2);

        //true
        System.out.println(s1.equals(s4));
        //falsez
        System.out.println(s3==s4);
        //true
        System.out.println(s5==s1);
        //false  s1指向常量池  s6 由于+和字符串变量参与了优化 StringBuider("ab").append(s)
        System.out.println(s1==s6);
        //true
        System.out.println(s7==s1);
        System.out.println(s7==s8);

        //维视
        //false  concat地址变化
        String s9="a".concat("b").concat("c");
        System.out.println(s1==s9);

        String s10="def";
//        实例名{变量名称}.方法()
        System.out.println(s10.charAt(2));
        //从7开始向后找ef  没有-1
        System.out.println("abcdefgh".indexOf("ef",3));

        System.out.println("abc".equalsIgnoreCase("ABC"));
        System.out.println("abc".replace("b", "**"));
        System.out.println("abcdefghijk".substring(3).indexOf("f"));
    }
}
